package com.cy.sort;

/**
 * @Author: chenyun
 * @Date: 2021/09/13/20:58
 * @Description:
 */

// 选择排序
public class SelectSort {
    public static void selectSort(int[] arry){
        int i,j,min;

        /*判断数组为空或为一个元素的情况，即边界检查*/
        if (arry == null || arry.length < 2) {
            return;
        }
        for ( i = 0; i < arry.length-1; i++) {
            //min变量保存该趟比较过程中，最小元素所对应的索引，
            //先假设前面的元素为最小元素
            min = i;
            for(j=i+1; j < arry.length; j++){
                if(arry[j]<arry[min])
                    min = j;
            }
            //然后交换此次查找到的最小值和原始的最小值
            swap(arry,i,min);
        }
    }

    public static void swap(int[] arry,int i, int j){
        int tmp = arry[i];
        arry[i] = arry[j];
        arry[j] = tmp;
    }

    public static void main(String[] args) {
        int[] arry = {9,1,5,8,3,7,4,6,2};
        selectSort(arry);
        for (int i : arry) {
            System.out.print(i+" ");
        }
    }

}
